from django.contrib import admin
from website import models
from django import forms
# Register your models here.
class WebInfoForm(forms.ModelForm):
    class Meta:
        model = models.WebInfoModel
        fields = ['linkman',]
        # fields=['linkman', 'phone','tel','email','address','logo']
@admin.register(models.WebInfoModel)
class WebInfoModelAdmin(admin.ModelAdmin):
    """入库单主表管理"""
    #单个表单要展示的内容
    # form = WebInfoForm
    # # 列表页展示字段
    list_display = ('linkman', 'phone','tel','email','address','logo')
    # # 列表页可点击进入编辑的字段
    # list_display_links = ('orderId',)
    # # 搜索字段（支持入库单号搜索）
    # search_fields = ('orderId','supplier__name')
    # # 外键搜索：通过双下划线指定关联模型的文本字段
    # # 'supplier__name',  # 搜索供应商名称（假设SupplierRawModel有name字段）
    # # 过滤条件（按日期和创建时间筛选）
    # list_filter = ('date', 'create_at')
    #
    # # 优化外键选择体验（支持搜索）
    # autocomplete_fields = ('supplier',)
    # # 分页设置
    # list_per_page = 10
    # # 只读字段
    # readonly_fields = ('create_at', 'update_at')
    #
    # # 在入库单编辑页嵌入明细项（核心配置）
    # inlines = [StoreRawDetailInline,StoreRawFileInline]
    #
    # # 表单字段分组
    # fieldsets = (
    #     ('入库单基本信息', {
    #         'fields': ('orderId', 'date','type','supplier'),
    #         'description': '请输入入库单号和入库日期'
    #     }),
    #     ('系统记录', {
    #         'fields': ('create_at', 'update_at'),
    #         'classes': ('collapse',),  # 可折叠
    #         'description': '创建和更新时间由系统自动记录，不可修改'
    #     })
    # )
    #
    # # 自定义列表字段：显示明细数量
    # def detail_count(self, obj):
    #     return obj.storerawdetailmodel_set.count()
    #
    # detail_count.short_description = "明细数量"  # 列标题
    #
    # # 自定义列表字段：计算总入库数量
    # def total_store_num(self, obj):
    #     from django.db.models import Sum
    #     total = obj.storerawdetailmodel_set.aggregate(
    #         total=Sum('store_num')
    #     )['total'] or 0
    #     return f"{total:.2f}"  # 保留两位小数
    #
    # total_store_num.short_description = "总入库数量"
    #
    # # 自定义字段：生成跳转链接（查看明细详情）
    # def view_details_link(self, obj):
    #     # 1. 跳转到当前订单的 Admin 详情页（内部链接）
    #     # admin_url = reverse('admin:store_storerawordermodel_change', args=[obj.id])
    #     # return format_html('<a href="{}" class="button">查看详情</a>', admin_url)
    #
    #     # 2. 跳转到关联的明细列表（假设明细有单独的 Admin 页面）
    #     return format_html(
    #         '<a href="/admin/store/storerawdetailmodel/?order_id={}" target="_blank">查看明细</a>',
    #         obj.id  # 传递当前订单ID作为筛选条件
    #     )
    #
    # view_details_link.short_description = "操作"  # 表头名称

@admin.register(models.WebMessageModel)
class WebMessageModelAdmin(admin.ModelAdmin):
    """入库单主表管理"""
    #单个表单要展示的内容
    # form = WebInfoForm
    # # 列表页展示字段
    list_display = ('title','linkman','phone','email','address','contents',)
    # # 列表页可点击进入编辑的字段
    # list_display_links = ('orderId',)
    # # 搜索字段（支持入库单号搜索）
    # search_fields = ('orderId','supplier__name')
    # # 外键搜索：通过双下划线指定关联模型的文本字段
    # # 'supplier__name',  # 搜索供应商名称（假设SupplierRawModel有name字段）
    # # 过滤条件（按日期和创建时间筛选）
    # list_filter = ('date', 'create_at')
    #
    # # 优化外键选择体验（支持搜索）
    # autocomplete_fields = ('supplier',)
    # # 分页设置
    # list_per_page = 10
    # # 只读字段
    # readonly_fields = ('create_at', 'update_at')
    #
    # # 在入库单编辑页嵌入明细项（核心配置）
    # inlines = [StoreRawDetailInline,StoreRawFileInline]
    #
    # # 表单字段分组
    # fieldsets = (
    #     ('入库单基本信息', {
    #         'fields': ('orderId', 'date','type','supplier'),
    #         'description': '请输入入库单号和入库日期'
    #     }),
    #     ('系统记录', {
    #         'fields': ('create_at', 'update_at'),
    #         'classes': ('collapse',),  # 可折叠
    #         'description': '创建和更新时间由系统自动记录，不可修改'
    #     })
    # )
    #
    # # 自定义列表字段：显示明细数量
    # def detail_count(self, obj):
    #     return obj.storerawdetailmodel_set.count()
    #
    # detail_count.short_description = "明细数量"  # 列标题
    #
    # # 自定义列表字段：计算总入库数量
    # def total_store_num(self, obj):
    #     from django.db.models import Sum
    #     total = obj.storerawdetailmodel_set.aggregate(
    #         total=Sum('store_num')
    #     )['total'] or 0
    #     return f"{total:.2f}"  # 保留两位小数
    #
    # total_store_num.short_description = "总入库数量"
    #
    # # 自定义字段：生成跳转链接（查看明细详情）
    # def view_details_link(self, obj):
    #     # 1. 跳转到当前订单的 Admin 详情页（内部链接）
    #     # admin_url = reverse('admin:store_storerawordermodel_change', args=[obj.id])
    #     # return format_html('<a href="{}" class="button">查看详情</a>', admin_url)
    #
    #     # 2. 跳转到关联的明细列表（假设明细有单独的 Admin 页面）
    #     return format_html(
    #         '<a href="/admin/store/storerawdetailmodel/?order_id={}" target="_blank">查看明细</a>',
    #         obj.id  # 传递当前订单ID作为筛选条件
    #     )
    #
    # view_details_link.short_description = "操作"  # 表头名称

@admin.register(models.WebPage)
class WebPageModelAdmin(admin.ModelAdmin):
    """入库单主表管理"""
    #单个表单要展示的内容
    # form = WebInfoForm
    # # 列表页展示字段
    list_display = ('title','state')
    # # 列表页可点击进入编辑的字段
    # list_display_links = ('orderId',)
    # # 搜索字段（支持入库单号搜索）
    # search_fields = ('orderId','supplier__name')
    # # 外键搜索：通过双下划线指定关联模型的文本字段
    # # 'supplier__name',  # 搜索供应商名称（假设SupplierRawModel有name字段）
    # # 过滤条件（按日期和创建时间筛选）
    # list_filter = ('date', 'create_at')
    #
    # # 优化外键选择体验（支持搜索）
    # autocomplete_fields = ('supplier',)
    # # 分页设置
    # list_per_page = 10
    # # 只读字段
    # readonly_fields = ('create_at', 'update_at')
    #
    # # 在入库单编辑页嵌入明细项（核心配置）
    # inlines = [StoreRawDetailInline,StoreRawFileInline]
    #
    # # 表单字段分组
    # fieldsets = (
    #     ('入库单基本信息', {
    #         'fields': ('orderId', 'date','type','supplier'),
    #         'description': '请输入入库单号和入库日期'
    #     }),
    #     ('系统记录', {
    #         'fields': ('create_at', 'update_at'),
    #         'classes': ('collapse',),  # 可折叠
    #         'description': '创建和更新时间由系统自动记录，不可修改'
    #     })
    # )
    #
    # # 自定义列表字段：显示明细数量
    # def detail_count(self, obj):
    #     return obj.storerawdetailmodel_set.count()
    #
    # detail_count.short_description = "明细数量"  # 列标题
    #
    # # 自定义列表字段：计算总入库数量
    # def total_store_num(self, obj):
    #     from django.db.models import Sum
    #     total = obj.storerawdetailmodel_set.aggregate(
    #         total=Sum('store_num')
    #     )['total'] or 0
    #     return f"{total:.2f}"  # 保留两位小数
    #
    # total_store_num.short_description = "总入库数量"
    #
    # # 自定义字段：生成跳转链接（查看明细详情）
    # def view_details_link(self, obj):
    #     # 1. 跳转到当前订单的 Admin 详情页（内部链接）
    #     # admin_url = reverse('admin:store_storerawordermodel_change', args=[obj.id])
    #     # return format_html('<a href="{}" class="button">查看详情</a>', admin_url)
    #
    #     # 2. 跳转到关联的明细列表（假设明细有单独的 Admin 页面）
    #     return format_html(
    #         '<a href="/admin/store/storerawdetailmodel/?order_id={}" target="_blank">查看明细</a>',
    #         obj.id  # 传递当前订单ID作为筛选条件
    #     )
    #
    # view_details_link.short_description = "操作"  # 表头名称

@admin.register(models.WebNews)
class WebNewsModelAdmin(admin.ModelAdmin):
    """入库单主表管理"""
    #单个表单要展示的内容
    # form = WebInfoForm
    # # 列表页展示字段
    list_display = ('title','state')
    # # 列表页可点击进入编辑的字段
    # list_display_links = ('orderId',)
    # # 搜索字段（支持入库单号搜索）
    # search_fields = ('orderId','supplier__name')
    # # 外键搜索：通过双下划线指定关联模型的文本字段
    # # 'supplier__name',  # 搜索供应商名称（假设SupplierRawModel有name字段）
    # # 过滤条件（按日期和创建时间筛选）
    # list_filter = ('date', 'create_at')
    #
    # # 优化外键选择体验（支持搜索）
    # autocomplete_fields = ('supplier',)
    # # 分页设置
    # list_per_page = 10
    # # 只读字段
    # readonly_fields = ('create_at', 'update_at')
    #
    # # 在入库单编辑页嵌入明细项（核心配置）
    # inlines = [StoreRawDetailInline,StoreRawFileInline]
    #
    # # 表单字段分组
    # fieldsets = (
    #     ('入库单基本信息', {
    #         'fields': ('orderId', 'date','type','supplier'),
    #         'description': '请输入入库单号和入库日期'
    #     }),
    #     ('系统记录', {
    #         'fields': ('create_at', 'update_at'),
    #         'classes': ('collapse',),  # 可折叠
    #         'description': '创建和更新时间由系统自动记录，不可修改'
    #     })
    # )
    #
    # # 自定义列表字段：显示明细数量
    # def detail_count(self, obj):
    #     return obj.storerawdetailmodel_set.count()
    #
    # detail_count.short_description = "明细数量"  # 列标题
    #
    # # 自定义列表字段：计算总入库数量
    # def total_store_num(self, obj):
    #     from django.db.models import Sum
    #     total = obj.storerawdetailmodel_set.aggregate(
    #         total=Sum('store_num')
    #     )['total'] or 0
    #     return f"{total:.2f}"  # 保留两位小数
    #
    # total_store_num.short_description = "总入库数量"
    #
    # # 自定义字段：生成跳转链接（查看明细详情）
    # def view_details_link(self, obj):
    #     # 1. 跳转到当前订单的 Admin 详情页（内部链接）
    #     # admin_url = reverse('admin:store_storerawordermodel_change', args=[obj.id])
    #     # return format_html('<a href="{}" class="button">查看详情</a>', admin_url)
    #
    #     # 2. 跳转到关联的明细列表（假设明细有单独的 Admin 页面）
    #     return format_html(
    #         '<a href="/admin/store/storerawdetailmodel/?order_id={}" target="_blank">查看明细</a>',
    #         obj.id  # 传递当前订单ID作为筛选条件
    #     )
    #
    # view_details_link.short_description = "操作"  # 表头名称

@admin.register(models.WebProducts)
class WebProductsModelAdmin(admin.ModelAdmin):
    """入库单主表管理"""
    #单个表单要展示的内容
    # form = WebInfoForm
    # # 列表页展示字段
    list_display = ('title','state','img')
    # # 列表页可点击进入编辑的字段
    # list_display_links = ('orderId',)
    # # 搜索字段（支持入库单号搜索）
    # search_fields = ('orderId','supplier__name')
    # # 外键搜索：通过双下划线指定关联模型的文本字段
    # # 'supplier__name',  # 搜索供应商名称（假设SupplierRawModel有name字段）
    # # 过滤条件（按日期和创建时间筛选）
    # list_filter = ('date', 'create_at')
    #
    # # 优化外键选择体验（支持搜索）
    # autocomplete_fields = ('supplier',)
    # # 分页设置
    # list_per_page = 10
    # # 只读字段
    # readonly_fields = ('create_at', 'update_at')
    #
    # # 在入库单编辑页嵌入明细项（核心配置）
    # inlines = [StoreRawDetailInline,StoreRawFileInline]
    #
    # # 表单字段分组
    # fieldsets = (
    #     ('入库单基本信息', {
    #         'fields': ('orderId', 'date','type','supplier'),
    #         'description': '请输入入库单号和入库日期'
    #     }),
    #     ('系统记录', {
    #         'fields': ('create_at', 'update_at'),
    #         'classes': ('collapse',),  # 可折叠
    #         'description': '创建和更新时间由系统自动记录，不可修改'
    #     })
    # )
    #
    # # 自定义列表字段：显示明细数量
    # def detail_count(self, obj):
    #     return obj.storerawdetailmodel_set.count()
    #
    # detail_count.short_description = "明细数量"  # 列标题
    #
    # # 自定义列表字段：计算总入库数量
    # def total_store_num(self, obj):
    #     from django.db.models import Sum
    #     total = obj.storerawdetailmodel_set.aggregate(
    #         total=Sum('store_num')
    #     )['total'] or 0
    #     return f"{total:.2f}"  # 保留两位小数
    #
    # total_store_num.short_description = "总入库数量"
    #
    # # 自定义字段：生成跳转链接（查看明细详情）
    # def view_details_link(self, obj):
    #     # 1. 跳转到当前订单的 Admin 详情页（内部链接）
    #     # admin_url = reverse('admin:store_storerawordermodel_change', args=[obj.id])
    #     # return format_html('<a href="{}" class="button">查看详情</a>', admin_url)
    #
    #     # 2. 跳转到关联的明细列表（假设明细有单独的 Admin 页面）
    #     return format_html(
    #         '<a href="/admin/store/storerawdetailmodel/?order_id={}" target="_blank">查看明细</a>',
    #         obj.id  # 传递当前订单ID作为筛选条件
    #     )
    #
    # view_details_link.short_description = "操作"  # 表头名称